import Main from '@/components/main'
/*
 * import parentView from '@/components/parent-view'
 * import Tables from '@/view/components/tables/tables.vue'
 */

/**
 * meta除了原生参数外可配置的参数:
 * meta: {
 *  title: { String|Number|Function }
 *         显示在侧边栏、面包屑和标签栏的文字
 *         使用'{{ 多语言字段 }}'形式结合多语言使用，例子看多语言的路由配置;
 *         可以传入一个回调函数，参数是当前路由对象，例子看动态路由和带参路由
 *  hideInBread: (false) 设为true后此级路由将不会出现在面包屑中，示例看QQ群路由配置
 *  hideInMenu: (false) 设为true后在左侧菜单不会显示该页面选项
 *  notCache: (false) 设为true后页面在切换标签后不会缓存，如果需要缓存，无需设置这个字段，而且需要设置页面组件name属性和路由配置的name一致
 *  access: (null) 可访问该页面的权限数组，当前路由设置的权限会影响子路由
 *  icon: (-) 该页面在左侧菜单、面包屑和标签导航处显示的图标，如果是自定义图标，需要在图标名称前加下划线'_'
 *  beforeCloseName: (-) 设置该字段，则在关闭当前tab页时会去'@/router/before-close.js'里寻找该字段名对应的方法，作为关闭前的钩子函数
 * }
 */
const uriPre = process.env.VUE_APP_PAGE_URI_PRE || '';
const pathFormat = suffix => uriPre + suffix;

export default [
    {
        'path'     : '/',//针对开发环境的跳转
        'name'     : 'indexPath1',
        'redirect' : pathFormat('/home'),
        'meta'     : {
            'title'     : '首页',
            'hideInMenu': true
        },
    },
    {
        'path'     : pathFormat('/index.html'),//正对正式环境路由情况1
        'name'     : 'indexPath3',
        'redirect' : pathFormat('/home'),
        'meta'     : {
            'title'     : '首页',
            'hideInMenu': true
        },
    },
    {
        'path'     : pathFormat(''),
        'name'     : 'indexPath2',
        'redirect' : pathFormat('/home'),
        'meta'     : {
            'title'     : '首页',
            'hideInMenu': true
        },
    },
    {
        'path'     : pathFormat('/login'),
        'name'     : 'login',
        'isStatic' : true,
        'meta'     : {
            'title'     : 'Login - 登录',
            'hideInMenu': true
        },
        'component': () => import('@/view/login/login.vue')
    },
    {
        'path'     : pathFormat('/'),
        'name'     : '_home',
        'redirect' : pathFormat('/home'),
        'component': Main,
        'meta'     : {
            'isStatic'  : true,
            'hideInMenu': false,
            'notCache'  : true,
            'title'     : '首页',
            'icon'      : 'md-home',
        },
        'children' : [
            {
                'path'     : pathFormat('/home'),
                'name'     : 'home',
                'meta'     : {
                    'isStatic'  : true,
                    'hideInMenu': true,
                    'title'     : '首页',
                    'notCache'  : true,
                    'icon'      : 'md-home'
                },
                'component': () => import('@/view/single-page/home')
            }
        ]
    },
    {
        'path'     : pathFormat('/fields'),
        'name'     : 'fields',
        'meta'     : {
            'hideInBread': true
        },
        'component': Main,
        'children' : [
            {
                path     : 'fields_setting_page',
                name     : '字段设置',
                meta     : {
                    icon  : 'ios-navigate',
                    title : '字段设置',
                    pinyin: 'ziduanshezhi-zdsz'
                },
                component: () => import('@/view/fields-setting/index.vue')
            }
        ]
    },
    {
        'path'     : pathFormat('/example'),
        'name'     : 'example',
        'meta'     : {
            hideInBread: true,
            showAlways : true,
            title      : '示例',
            hideInMenu : process.env.NODE_ENV !== 'development',
        },
        'component': Main,
        'children' : [
            {
                path     : 'page',
                name     : 'examplePage',
                meta     : {
                    icon  : 'ios-navigate',
                    title : '表格示例页面',
                    pinyin: 'example-bgslym'
                },
                component: () => import('@/view/example/examplePage.vue')
            }
        ]
    },
    {
        'path'     : pathFormat('/401'),
        'name'     : 'error_401',
        'meta'     : {
            'isStatic'  : true,
            'hideInMenu': true
        },
        'component': () => import('@/view/error-page/401.vue')
    },
    {
        'path'     : pathFormat('/500'),
        'name'     : 'error_500',
        'meta'     : {
            'isStatic'  : true,
            'hideInMenu': true
        },
        'component': () => import('@/view/error-page/500.vue')
    },
    {
        'path'     : pathFormat('/rbac'),
        'name'     : 'rbac',
        'meta'     : {
            hideInBread: true,
            showAlways : true,
            title      : '权限管理'
        },
        'component': Main,
        'children' : [
            {
                path     : 'power',
                name     : 'rbacPower',
                meta     : {
                    icon  : 'ios-navigate',
                    title : '页面',
                    pinyin: 'rbac-ym'
                },
                component: () => import('@/rbac/view/rbacPowerPage.vue')
            },
            {
                path     : 'role',
                name     : 'rbacRole',
                meta     : {
                    icon  : 'ios-navigate',
                    title : '角色',
                    pinyin: 'rbac-js'
                },
                component: () => import('@/rbac/view/rbacRolePage.vue')
            },
            {
                path     : 'user',
                name     : 'rbacUserPage',
                meta     : {
                    icon    : 'ios-navigate',
                    title   : '用户角色分配管理',
                    pinyin  : 'rbac-js'
                },
                component: () => import('@/rbac/view/rbacUserPage.vue')
            },
        ]
    },
    {
        'path'     : pathFormat('/admin-user'),
        'name'     : 'adminUser',
        'meta'     : {
            hideInBread: true,
            showAlways : true,
            title      : '用户管理'
        },
        'component': Main,
        'children' : [
            {
                path     : 'user-list',
                name     : 'userList',
                meta     : {
                    icon  : 'ios-navigate',
                    title : '用户列表',
                    pinyin: 'user-list'
                },
                component: () => import('@/view/admin-user/userListPage.vue')
            },
        ]
    },
    {
        'path'     : pathFormat('/app-project'),
        'name'     : 'appProject',
        'meta'     : {
            hideInBread: true,
            showAlways : true,
            title      : '应用项目管理'
        },
        'component': Main,
        'children' : [
            {
                path     : 'app-project-list',
                name     : 'appProjectList',
                meta     : {
                    icon  : 'ios-navigate',
                    title : '应用项目列表',
                    pinyin: 'app-project-list'
                },
                component: () => import('@/view/appProject/appProjectListPage.vue')
            },
            {
                path     : 'app-project-type-list',
                name     : 'appProjectTypeList',
                meta     : {
                    icon  : 'ios-navigate',
                    title : '应用项目类型列表',
                    pinyin: 'app-project-type-list'
                },
                component: () => import('@/view/appProject/appProjectTypeListPage.vue')
            },
            {
                path     : 'mini-program-operation-record',
                name     : 'miniProgramOperationRecord',
                meta     : {
                    icon  : 'ios-navigate',
                    title : '项目操作记录',
                    pinyin: 'mini-program-operation-record'
                },
                component: () => import('@/view/wechat/miniProgramOperationRecordPage.vue')
            },
        ]
    },
    {
        'path'     : pathFormat('/wechat'),
        'name'     : 'wechat',
        'meta'     : {
            hideInBread: true,
            showAlways : true,
            title      : '模板草稿管理'
        },
        'component': Main,
        'children' : [
            {
                path     : 'mini-program-template-list',
                name     : 'miniProgramTemplateList',
                meta     : {
                    icon  : 'ios-navigate',
                    title : '项目代码模板列表',
                    pinyin: 'mini-program-template-list'
                },
                component: () => import('@/view/wechat/miniProgramTemplateListPage.vue')
            },
            {
                path     : 'mini-program-draft-list',
                name     : 'miniProgramDraftList',
                meta     : {
                    icon  : 'ios-navigate',
                    title : '微信代码草稿列表',
                    pinyin: 'mini-program-draft-list'
                },
                component: () => import('@/view/wechat/miniProgramDraftListPage.vue')
            },
            {
                path     : 'mini-program-draft-record-list',
                name     : 'miniProgramDraftRecordList',
                meta     : {
                    icon  : 'ios-navigate',
                    title : '代码草稿操作日志',
                    pinyin: 'mini-program-draft--record-list'
                },
                component: () => import('@/view/wechat/miniProgramDraftRecordListPage.vue')
            },
            {
                path     : 'mini-program-wechat-template-list',
                name     : 'miniProgramWechatTemplateList',
                meta     : {
                    icon  : 'ios-navigate',
                    title : '微信代码模板库列表',
                    pinyin: 'mini-program-wechat-template-list'
                },
                component: () => import('@/view/wechat/miniProgramWechatTemplateListPage.vue')
            },
        ]
    },
    {
        'path'     : pathFormat('/application'),
        'name'     : 'application',
        'meta'     : {
            hideInBread: true,
            showAlways : true,
            title      : '应用管理'
        },
        'component': Main,
        'children' : [
            {
                path     : 'application-list',
                name     : 'applicationList',
                meta     : {
                    icon  : 'ios-navigate',
                    title : '应用列表',
                    pinyin: 'application-list'
                },
                component: () => import('@/view/application/applicationPage.vue')
            },
        ]
    },
    
    {
        'path'     : pathFormat('*'),//这个一定要放在最后
        'name'     : 'error_404',
        'meta'     : {
            'isStatic'  : true,
            'hideInMenu': true
        },
        'component': () => import('@/view/error-page/404.vue')
    },
]
